1. xpath使用 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(1) 属性筛选
//input[@id="kw"]
//span[@class="bg s_ipt_wr quickdelete-wrap"]
通过class进行选择的时候,需要将所有的class全部写进来才可以
(2) 索引和层级
//div[@id="head"]/div/div[@id="u1"]/a[2]
(3) 获取内容和属性
//div[@id="ul"]/a[2]/text() 获取内容
//div[@id="ul"]/a[2]/@href 获取属性
(4) xpath函数
选出class属性以mn开头的a
//div[@id="ul"]/a[starts-with(@class, "mn")]
选出内容以地开头的a
//div[@id="ul"]/a[start-with(text(), "地")]
选出class属性包含av的a
//div[@id="ul"]/a[contains(@class, "av")]
选出内容包含多产的a
//div[@id="ul"]/a[contains(text(), "多产")]
代码中使用xpath. 首先将文档生成对象, 然后根据对象的方法找到想要的节点,可以是本地文件, 也可以是网络文件
xpath方法返回的是一个列表, 通过下标进行取内容
//*[@id="ul"]/a[2]
//*[@id="su"] #su #form > input[type="hidden"]:nth-child(14)
xpath.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from lxml import etree

# 生成对象
tree = etree.parse('test.html')
# print(tree)

# ret = tree.xpath('//a[@class="lala"]')
# ret = tree.xpath('//div[@class="tang"]/ul/li/b[2]')
# ret = tree.xpath('//a[@id="dudu"]/text()')
# ret = tree.xpath('//a[@id="dudu"]/@href')
# print(ret)


# 获取标签里面还有标签的内容可以使用如下两种方式
# ret = tree.xpath('//div[@class="hero"]//text()')
# string = ''.join(ret).replace('\n', '').replace(' ', '')
# print(string)

# 先找到div这个对象
# odiv = tree.xpath('//div[@class="hero"]')[0]
# string = odiv.xpath('string(.)').replace('\n', '').replace(' ', '')
# print(string)

# ret = tree.xpath('//b[starts-with(@class,"mei")]/text()')
# ret = tree.xpath('//b[contains(text(), "一")]/text()')
# print(ret)
2. xpath案例 :
1
2
3
4
5
6
7
http://sc.chinaz.com  美女图片
懒加载 : 一个网页中有100张图片, 需要101次请求才能加载完毕, 首先加载出现在可视区内的图片, 在可视区外的图片多没有加载, 在用户滚动滚动条的时候, 通过js动态的去监听当前这个图片有没有出现在可视区, 如果出现在可视区, 再去加载这个图片
前端如何实现? <img src='xxx'> <img src2='图片地址'> 当图片出现在可视区的时候, js动态的将src2修改为src, 就会加载这个图片
出现的形式 :
src2 data-src data-original class="lazy"
糗事百科
谷歌中的xpath只能作为参考,实际都要以代码为准
meinv.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import urllib.request
from lxml import etree
import time
import os

class TuPianSpider(object):
def __init__(self, start_page, end_page):
self.start_page = start_page
self.end_page = end_page
self.url = 'http://sc.chinaz.com/tupian/meinvtupian_{}.html'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
}

def run(self):
for page in range(self.start_page, self.end_page + 1):
print('正在下载第%s页......' % page)
request = self.handle_request(page)
content = urllib.request.urlopen(request).read().decode('utf8')
self.parse_content(content)
print('结束下载第%s页' % page)
time.sleep(2)

def parse_content(self, content):
# 解析内容
tree = etree.HTML(content)
# 提取这个页码所有图片的src属性
image_srcs = tree.xpath('//div[@id="container"]/div/div/a/img/@src2')
# 找到图片的标题
image_titles = tree.xpath('//div[@id="container"]/div/div/a/img/@alt')
# print(image_srcs)
# print(len(image_srcs))
# 遍历列表下载图片
for image_src in image_srcs:
# 生成图片的名字
filename = image_titles[image_srcs.index(image_src)] + '.' + image_src.split('.')[-1]
print('正在下载--%s...' % filename)
dirname = 'meinv'
filepath = os.path.join(dirname, filename)
urllib.request.urlretrieve(image_src, filepath)
print('结束下载--%s' % filename)
time.sleep(2)

def handle_request(self, page):
if page == 1:
url = 'http://sc.chinaz.com/tupian/meinvtupian.html'
else:
url = self.url.format(page)
# print(url)
request = urllib.request.Request(url=url, headers=self.headers)
return request


def main():
start_page = int(input('请输入起始页码:'))
end_page = int(input('请输入结束页码:'))
tupian = TuPianSpider(start_page, end_page)
tupian.run()

if __name__ == '__main__':
main()
qiubai.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import urllib.request
from lxml import etree

def handle_request(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
}
return urllib.request.Request(url=url, headers=headers)

def parse_content(content, fp):
tree = etree.HTML(content)
# 获取每一个段子的所有信息
odiv_list = tree.xpath('//div[@id="content-left"]/div')
# print(len(odiv_list))
for odiv in odiv_list:
# 获取头像
try:
image_src = odiv.xpath('./div[@class="author clearfix"]/a/img/@src')[0]
except Exception as e:
image_src = ''

# 获取用户名
name = odiv.xpath('./div[@class="author clearfix"]//h2/text()')[0]
# 获取年龄
try:
age = odiv.xpath('./div[@class="author clearfix"]/div/text()')[0]
except Exception as e:
age = ''

# 获取内容 自己获取
item = {
'头像': image_src,
'用户名': name,
'年龄': age
}
fp.write(str(item) + '\n')

def main():
fp = open('qiu.txt', 'w', encoding='utf8')
url = 'https://www.qiushibaike.com/'
request = handle_request(url)
response = urllib.request.urlopen(request)
content = response.read().decode('utf8')
parse_content(content, fp)
fp.close()

if __name__ == '__main__':
main()
3. json数据分析 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
认识json?
前台 : 由用户看到的界面称之为前台
后台 : 管理员负责的查看的, 后台管理系统
前端 : html, css, js, 在浏览器那一块工作的
后端 : 服务器端的, php, java, python
短信发送平台, 会提供单独的接口.
天气接口,
前端后端交互一般都是json格式
后端服务器和特定功能服务器之间的交互, 后端服务器称之为前端, 提供服务的称之为后端, 之间交互的格式也是json格式.
http://blog.csdn.net/luxideyao/article/details/77802389

<note>你长得真漂亮</note>
'note': '你长得真漂亮'
json语法 :
(1) 数据都在键值对中
(2) 数据以逗号隔开
(3) {} 大括号保存对象 对应的是咱的字典
(4) [] 中括号保存数组
字符串都是以双引号括起来
json的值可以是 : 数字, 字符串, 逻辑值, 数组, 字典, null

Python如何解析json?
(1) 原生解析, 通过字典, 列表解析
import json : json模块
json.dumps() : 将Python的字典或者列表转换为json格式字符串
ensure_ascii = False 可以看懂中文
json.loads() : 将json格式的字符串转化为Python的对象
了解下面的 :
json.dump() : 将Python对象转化为json字符串之后直接写入到文件中
json.load() : 将文件中的json字符串直接读取到Python对象中
(2) jsonpath(了解)
jsonpath用来干什么? 用来解析json数据,当解析复杂一点的json数据就要用到这个.
obj[0]['lala']['goudan'][2]['dudu']['xixi']
http://blog.csdn.net/luxideyao/article/details/77802389
安装: pip install lxml pip install jsonpath
和xpath对比 :
/ $ 根元素
/ . 路径分隔符, 直接子元素
. @ 当前元素
// .. 任意位置开始查找
下标xpath从1开始, jsonpath从0开始

https://rate.tmall.com/list_detail_rate.htm?itemId=562099309982&spuId=893336129&sellerId=2616970884&order=3&currentPage=2
json.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import json

lt = [
{'name': '王静', 'age': '7', 'height': 130},
{'name': '闫晓红', 'age': 13, 'height': 160},
{'name': '刘惠芬', 'age': 16, 'height': 158},
{'name': '赵铁柱', 'age': 20, 'height': 170}
]

string = json.dumps(lt, ensure_ascii=False)

# print(string)
obj = json.loads(string)

print(type(obj))
douban.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from bs4 import BeautifulSoup
import urllib.request
from lxml import etree
import json

'''
def main():
url = 'https://movie.douban.com/typerank?type_name=%E7%88%B1%E6%83%85&type=13&interval_id=100:90&action='
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
}
request = urllib.request.Request(url=url, headers=headers)
content = urllib.request.urlopen(request).read().decode('utf8')
tree = etree.HTML(content)
odiv_list = tree.xpath('//div[starts-with(@class,"movie-list-item")]')
print(odiv_list)
print(len(odiv_list))
'''

def main():
fp = open('movie.json', 'w', encoding='utf8')
url = 'https://movie.douban.com/j/chart/top_list?type=13&interval_id=100%3A90&action=&start=0&limit=20'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
}
request = urllib.request.Request(url=url, headers=headers)
content = urllib.request.urlopen(request).read().decode('utf8')

# print(content)
# 将json格式字符串转化为python对象
lt = json.loads(content)
# 遍历这个列表,依次获取每一个电影的详细信息
lala = []
for obj in lt:
# 获取海报
post = obj['cover_url']
# 电影名字
name = obj['title']
# 评分
score = obj['score']
# 评论人数
count = obj['vote_count']
item = {
'海报': post,
'电影': name,
'评分': score,
'品论人数': count
}
lala.append(item)
# print(obj)
# exit()
string = json.dumps(lala, ensure_ascii=False)
fp.write(string)
fp.close()

if __name__ == '__main__':
main()
jsonpath.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import json
import jsonpath

fp = open('book.json', 'r', encoding='utf8')
string = fp.read()
fp.close()

obj = json.loads(string)

# 得到所有book的author
ret = jsonpath.jsonpath(obj, '$.store.book[*].author')
# 直接找到所有的author
ret = jsonpath.jsonpath(obj, '$..author')
# 得到store下面的所有的price
ret = jsonpath.jsonpath(obj, '$.store..price')
# 得到第3本书
ret = jsonpath.jsonpath(obj, '$..book[2]')
# 得到最后一本书
ret = jsonpath.jsonpath(obj, '$..book[(@.length-1)]')
#
print(ret)
taobao.py :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import json
import jsonpath
import urllib.request

url = 'https://rate.tmall.com/list_detail_rate.htm?itemId=562099309982&spuId=893336129&sellerId=2616970884&order=3&currentPage=2'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36',
}
request = urllib.request.Request(url=url, headers=headers)
content = urllib.request.urlopen(request).read().decode('gbk')
content = '{' + content + '}'
# print(content)
fp = open('taobao.txt', 'w', encoding='utf8')
obj = json.loads(content)
# print(type(obj))
# 找到所有的评论列表
comments_list = obj['rateDetail']['rateList']
# 遍历列表,依次获取每一个评论内容
for com_obj in comments_list:
# 评论内容
comment = com_obj['rateContent']
# 用户名
name = jsonpath.jsonpath(com_obj, '$..displayUserNick')[0]
# 上传照片
images = jsonpath.jsonpath(com_obj, '$..pics')[0]
# 评论时间
tt = jsonpath.jsonpath(com_obj, '$..rateDate')[0]
# print(images)
# print('*' * 50)
item = {
'评论内容': comment,
'用户名': name,
'照片': images,
'评论时间': tt
}
fp.write(str(item) + '\n')

fp.close()
book.json :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{ "store": {
"book": [
{ "category": "文学",
"author": "路遥",
"title": "平凡的世界",
"price": 18.95
},
{ "category": "文学",
"author": "霍达",
"title": "穆斯林的葬礼",
"price": 32.99
},
{ "category": "科技",
"author": "崔庆才",
"title": "Python网络爬虫开发实战",
"isbn": "0-553-21311-3",
"price": 68.99
},
{ "category": "历史",
"author": "当年明月",
"title": "明朝那些事儿",
"isbn": "0-395-19395-8",
"price": 32.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
test.html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>xpath测试</title>
</head>
<body>
<div class="hero">
杨玉环
<p>王昭君</p>
大乔
<p>妲己</p>
蔡文姬
</div>
<div class="tang">
<ul>
<li><b class="meixi">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</b></li>
<li><b class="meizi">一骑红尘妃子笑,无人知是荔枝来</b></li>
<li><b class="meiqiu">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</b></li>
<li><b class="cluo">朝辞白帝彩云间,千里江陵一日还,两岸猿声啼不住,轻舟已过万重山</b></li>
</ul>
</div>
<div class="song">
<a href="www.yuefei.com">怒发冲冠凭栏处,潇潇雨歇抬望眼</a>
<a href="www.su.com" class="lala">十年生死两茫茫,不思量,自难忘,千里孤坟无处话凄凉</a>
<a href="www.susu.com" id="dudu">一枝梨花压海棠</a>
</div>
</body>
</html>
taobao.txt :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{'评论内容': '用了一段时间才来评价的,首先确认是正品,产品质量有保证,使用顺手流畅,显示清晰细腻,功能强大。一如既往的好一如既往的喜欢。', '用户名': '踏***8', '照片': '', '评论时间': '2018-08-09 23:20:06'}
{'评论内容': '我觉得很不错,是全新的国行未拆封,就是刚用上会有些操作不习惯,慢慢就好了,好评', '用户名': '秦***o', '照片': ['//img.alicdn.com/bao/uploaded/i3/TB2u2PrI1OSBuNjy0FdXXbDnVXa_!!0-rate.jpg'], '评论时间': '2018-08-05 11:21:53'}
{'评论内容': '用了几天后过来评价的,首先夸一下苏宁的火箭哥们,送货快,主动提出拆箱验货。手机运行速度一流,电池续航能力强,扫脸解锁真的超方便。大屏看着很舒服,拍照很棒。', '用户名': 's***2', '照片': '', '评论时间': '2018-08-07 09:25:50'}
{'评论内容': '终于下单啦,安卓换回苹果,还是很好用~哈哈哈哈', '用户名': 't***2', '照片': ['//img.alicdn.com/bao/uploaded/i3/TB2c1h2c6fguuRjSspaXXaXVXXa_!!0-rate.jpg'], '评论时间': '2018-08-09 20:41:17'}
{'评论内容': '此用户没有填写评论!', '用户名': '与***后', '照片': '', '评论时间': '2018-07-01 17:57:27'}
{'评论内容': '非常不错,国行正版,序列号查询也没问题,苏宁比其他地方也便宜,还买了iwatch airport 晚上拍的第二天就到了', '用户名': '流***5', '照片': ['//img.alicdn.com/bao/uploaded/i1/TB2flTxJAOWBuNjSsppXXXPgpXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i3/TB2JJejJwmTBuNjy1XbXXaMrVXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i2/TB2GSqBJuOSBuNjy0FdXXbDnVXa_!!0-rate.jpg'], '评论时间': '2018-08-07 11:25:54'}
{'评论内容': '无话可说 因为实在是太好了!喜欢的简直不能自已,好开心好开心!正好还赶上活动。太合适了。太喜欢了~', '用户名': 'm***1', '照片': ['//img.alicdn.com/bao/uploaded/i1/TB23FRHJGSWBuNjSsrbXXa0mVXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i1/TB2xozEJQ9WBuNjSspeXXaz5VXa_!!0-rate.jpg'], '评论时间': '2018-08-08 16:21:42'}
{'评论内容': '一下子在苏宁易购买了2台,苏宁易购是电商中最经济实惠的,而且晚上下单隔天早上就到了,那天正好台风暴雨,送货师傅保证了货物按时送到我手里,十分感谢!', '用户名': 'y***7', '照片': ['//img.alicdn.com/bao/uploaded/i1/TB2EGrQJMaTBuNjSszfXXXgfpXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i4/TB2oXlvJ7CWBuNjy0FaXXXUlXXa_!!0-rate.jpg'], '评论时间': '2018-08-08 23:20:39'}
{'评论内容': '手机正品!物流快!服务好!推荐各位。非常好的一次购物体验!', '用户名': 'd***s', '照片': ['//img.alicdn.com/bao/uploaded/i4/TB22geJJH9YBuNjy0FgXXcxcXXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i2/TB29DZ4mv6TBKNjSZJiXXbKVFXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i2/TB2PEGVcy6guuRkSmLyXXculFXa_!!0-rate.jpg'], '评论时间': '2018-08-07 23:43:34'}
{'评论内容': '对于苏宁,第一次买东西可以说相当的满意了、无论什么事效率杠杠的!以后肯定会继续的.哈哈哈哈哈哈哈哈回家哈哈哈哈哈哈回家哈哈回家就斤斤计较哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈回家哈哈哈哈哈哈回家哈哈回家就斤斤计较哈哈哈哈哈哈哈哈哈', '用户名': 'h***1', '照片': ['//img.alicdn.com/bao/uploaded/i2/TB2UCx7BiCYBuNkHFCcXXcHtVXa_!!0-rate.jpg'], '评论时间': '2018-08-07 22:21:04'}
{'评论内容': '到货前 看到有些人说 机子容易发烫 今儿试了试 没有所说的烫手 温和而已 也没有什么大毛病 ix用着就是爽 各种科技 性能就不用说了 一分价钱一分货 非常好 让我爱不释手 机不离手 大爱 大爱 大爱 大爱 大爱 大爱 大爱 啊 啊啊啊 啊啊啊啊啊 啊啊啊 啊啊啊啊啊啊啊啊 呀呀呀呀 噢噢噢噢噢噢噢噢噢', '用户名': 'g***d', '照片': ['//img.alicdn.com/bao/uploaded/i2/TB2Jp6zmj7nBKNjSZLeXXbxCFXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i3/TB20hzzIA9WBuNjSspeXXaz5VXa_!!0-rate.jpg'], '评论时间': '2018-08-02 23:27:11'}
{'评论内容': 'iPhone X是目前苹果最好的手机了,从手感到系统都非常不错,很人性化,从4用到X 每代都在用,能看出苹果在为用户着想,而且苏宁有300优惠券很划算', '用户名': '龙***3', '照片': ['//img.alicdn.com/bao/uploaded/i1/TB2z41AagZupeRjt_jqXXcfAFXa_!!0-rate.jpg'], '评论时间': '2018-08-07 19:44:18'}
{'评论内容': '第二次购买,国行正品,信得过,运行流畅', '用户名': '羽***9', '照片': ['//img.alicdn.com/bao/uploaded/i4/TB2PQa0ylmWBuNkSndVXXcsApXa_!!0-rate.jpg'], '评论时间': '2018-07-24 19:30:54'}
{'评论内容': '手机是买来送给我妹的,一开始她让我给她买个7P或者8p,因为以前我女朋友要8P但我送了她个三千块的OPPO,然后我就变成前男友了,哈哈哈,所以我痛定思痛,以后买东西送女孩子,送的一定要超出她期望一点点,给我妹买8p她会开心,但不会有惊喜,所以偷偷给她买了X,收到过后,她说她觉得X性价比不高,从没考虑过,但看得出来很高兴,哈哈哈,还说她以后挣到钱给我买一个,懂事,哈哈。所以到这手机好不好不重要,关键是我和我妹都很开心,在苏宁我也买了个小米,别问我为什么我妹用苹果,我用小米,我不会告诉你我妹穿AJ,我穿回力,对我来说都一样,小米用到现在也没一点问题,苏宁还是信的过,手机不在我身上,所以没法晒图,后续怎么样,我问了之后再追加吧', '用户名': 't***9', '照片': ['//img.alicdn.com/bao/uploaded/i4/TB2qDCCIKOSBuNjy0FdXXbDnVXa_!!0-rate.jpg'], '评论时间': '2018-08-03 21:18:25'}
{'评论内容': '此用户没有填写评论!', '用户名': '曾***二', '照片': '', '评论时间': '2018-08-02 16:08:35'}
{'评论内容': '真品!快递服務好!送货上門!送货速度快', '用户名': 'i***馆', '照片': ['//img.alicdn.com/bao/uploaded/i3/TB2suaQJeuSBuNjSsplXXbe8pXa_!!0-rate.jpg'], '评论时间': '2018-08-06 11:21:18'}
{'评论内容': '非常愉快的一次购物,正品。物流也快,喜欢的亲们可以直接拍下额', '用户名': 'l***i', '照片': ['//img.alicdn.com/bao/uploaded/i4/TB2evqRJA9WBuNjSspeXXaz5VXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i4/TB2uSePBlyWBuNkSmFPXXXguVXa_!!0-rate.jpg'], '评论时间': '2018-08-07 11:17:12'}
{'评论内容': '喜欢?手机?是正品,感觉不错?', '用户名': 'j***钰', '照片': ['//img.alicdn.com/bao/uploaded/i2/TB2CVeDBfiSBuNkSnhJXXbDcpXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i3/TB2X1rwJuuSBuNjSsplXXbe8pXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i2/TB2ayL7JpOWBuNjy0FiXXXFxVXa_!!0-rate.jpg'], '评论时间': '2018-08-07 15:25:21'}
{'评论内容': '还不错,刚开始还用不习惯!现在方便多了', '用户名': 't***2', '照片': ['//img.alicdn.com/bao/uploaded/i4/TB2WDPiJH9YBuNjy0FgXXcxcXXa_!!0-rate.jpg'], '评论时间': '2018-08-08 07:37:56'}
{'评论内容': '非常满意。X就是帅,配上兰博基尼,更加合适,skr!', '用户名': 'h***5', '照片': ['//img.alicdn.com/bao/uploaded/i3/TB21vhYAMKTBuNkSne1XXaJoXXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i2/TB2AJIQINSYBuNjSsphXXbGvVXa_!!0-rate.jpg', '//img.alicdn.com/bao/uploaded/i3/TB2CVfQI4WYBuNjy1zkXXXGGpXa_!!0-rate.jpg'], '评论时间': '2018-08-04 20:44:46'}
qiu.txt :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{'头像': '//pic.qiushibaike.com/system/avtnew/1564/15642663/thumb/20150407183903.jpg?imageView2/1/w/90/h/90', '用户名': '\n有座坟藏着未亡人\n', '年龄': '21'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3750/37507340/thumb/20180729095851.jpg?imageView2/1/w/90/h/90', '用户名': '\n奔跑的小土狼\n', '年龄': '26'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3940/39406856/thumb/20180810222528.jpg?imageView2/1/w/90/h/90', '用户名': '\n甘小宝666\n', '年龄': '28'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3363/33634799/thumb/20180802092632.jpg?imageView2/1/w/90/h/90', '用户名': '\n诗诗妈!!!\n', '年龄': '27'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3144/31443014/thumb/2016103012512119.JPEG?imageView2/1/w/90/h/90', '用户名': '\n社会学ba\n', '年龄': '101'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3095/30957671/thumb/20160113171514.jpg?imageView2/1/w/90/h/90', '用户名': '\n有趣精选\n', '年龄': '31'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3078/30789405/thumb/2016120413362210.JPEG?imageView2/1/w/90/h/90', '用户名': '\n上凹下凸\n', '年龄': '78'}
{'头像': '//pic.qiushibaike.com/system/avtnew/1089/10897524/thumb/2018070919372061.JPEG?imageView2/1/w/90/h/90', '用户名': '\n凹凹+凸凸\n', '年龄': '31'}
{'头像': '//pic.qiushibaike.com/system/avtnew/1063/10633497/thumb/20180416103701.JPEG?imageView2/1/w/90/h/90', '用户名': '\n日邢一珊\n', '年龄': '34'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3327/33279276/thumb/20170119004600.JPEG?imageView2/1/w/90/h/90', '用户名': '\n小乌龟wy\n', '年龄': '22'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3495/34958112/thumb/2018061910525865.JPEG?imageView2/1/w/90/h/90', '用户名': '\n百毒不春\n', '年龄': '34'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3866/38662180/thumb/2018061600472198.JPEG?imageView2/1/w/90/h/90', '用户名': '\n爆笑好莱污\n', '年龄': '56'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3794/37949906/thumb/2018041821543947.JPEG?imageView2/1/w/90/h/90', '用户名': '\n滕州内涵还我初心\n', '年龄': '35'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3940/39402992/thumb/20180810130603.jpg?imageView2/1/w/90/h/90', '用户名': '\n哎~情路\n', '年龄': '23'}
{'头像': '//pic.qiushibaike.com/system/avtnew/958/9581923/thumb/20150307134246.jpg?imageView2/1/w/90/h/90', '用户名': '\n糗雪中狼\n', '年龄': '28'}
{'头像': '//pic.qiushibaike.com/system/avtnew/1722/17221979/thumb/20180524141023.JPEG?imageView2/1/w/90/h/90', '用户名': '\n挖鼻孔的老虎\n', '年龄': '100'}
{'头像': '//pic.qiushibaike.com/system/avtnew/1026/10267550/thumb/20170801104040.JPEG?imageView2/1/w/90/h/90', '用户名': '\n别动我零食\n', '年龄': '34'}
{'头像': '//pic.qiushibaike.com/system/avtnew/1151/11518983/thumb/20140717085457.jpg?imageView2/1/w/90/h/90', '用户名': '\n你TMD真的在逗我…\n', '年龄': '34'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3371/33712263/thumb/20180807233018.jpg?imageView2/1/w/90/h/90', '用户名': '\n偷惢\n', '年龄': '18'}
{'头像': '//pic.qiushibaike.com/system/avtnew/2845/28459514/thumb/20150517004055.jpg?imageView2/1/w/90/h/90', '用户名': '\n帅哥狠爱你\n', '年龄': '25'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3288/32882611/thumb/2016121421240671.JPEG?imageView2/1/w/90/h/90', '用户名': '\n瞅你那损样儿\n', '年龄': '25'}
{'头像': '', '用户名': '匿名用户', '年龄': ''}
{'头像': '//pic.qiushibaike.com/system/avtnew/3371/33712263/thumb/20180807233018.jpg?imageView2/1/w/90/h/90', '用户名': '\n偷惢\n', '年龄': '18'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3095/30957671/thumb/20160113171514.jpg?imageView2/1/w/90/h/90', '用户名': '\n有趣精选\n', '年龄': '31'}
{'头像': '//pic.qiushibaike.com/system/avtnew/3164/31645747/thumb/20160420122425.jpg?imageView2/1/w/90/h/90', '用户名': '\n引人犯罪的季节\n', '年龄': '21'}
movie.json :
1
[{"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1910813120.jpg", "电影": "霸王别姬", "评分": "9.5", "品论人数": 805016}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p510861873.jpg", "电影": "美丽人生", "评分": "9.5", "品论人数": 509653}, {"海报": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p510876377.jpg", "电影": "阿甘正传", "评分": "9.4", "品论人数": 872583}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1408665952.jpg", "电影": "泰坦尼克号 3D版", "评分": "9.4", "品论人数": 168503}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1161132422.jpg", "电影": "灿烂人生", "评分": "9.4", "品论人数": 25845}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2224933614.jpg", "电影": "罗密欧与朱丽叶", "评分": "9.4", "品论人数": 1058}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p457760035.jpg", "电影": "泰坦尼克号", "评分": "9.3", "品论人数": 811531}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1461851991.jpg", "电影": "机器人总动员", "评分": "9.3", "品论人数": 593806}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2329626263.jpg", "电影": "巴黎圣母院", "评分": "9.3", "品论人数": 3484}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p579729551.jpg", "电影": "三傻大闹宝莱坞", "评分": "9.2", "品论人数": 810029}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2455050536.jpg", "电影": "大话西游之大圣娶亲", "评分": "9.2", "品论人数": 602049}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1963126880.jpg", "电影": "乱世佳人", "评分": "9.2", "品论人数": 314589}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2173707976.jpg", "电影": "摩登时代", "评分": "9.2", "品论人数": 104454}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2099815842.jpg", "电影": "城市之光", "评分": "9.2", "品论人数": 49313}, {"海报": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p771490367.jpg", "电影": "生活多美好", "评分": "9.2", "品论人数": 37187}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2029574250.jpg", "电影": "哀乐中年", "评分": "9.2", "品论人数": 5498}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2409467410.jpg", "电影": "狐妖小红娘剧场版:王权富贵", "评分": "9.2", "品论人数": 2059}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2427045524.jpg", "电影": "狐妖小红娘剧场版:月红篇", "评分": "9.2", "品论人数": 1941}, {"海报": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1910901025.jpg", "电影": "天堂电影院", "评分": "9.1", "品论人数": 350484}, {"海报": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2328424489.jpg", "电影": "南海十三郎", "评分": "9.1", "品论人数": 14875}]

最后更新: 2018年08月13日 19:39

原始链接: http://yoursite.com/2018/08/11/xpath使用,xpath案例, json数据分析/

× 请我吃糖~
打赏二维码